﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using BLL;
using DTO;
using DAL;
using System.Drawing;

public partial class login : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["er"] != null)
        {
            int err;
            if (Int32.TryParse(Request.QueryString["er"], out err))
            {
                lblErro.ForeColor = Color.Red;
                switch ((Errors)err)
                {
                    case Errors.Autenticacao:
                        lblErro.Text = "login ou senha incorretos";
                        break;
                    case Errors.EnvioDeEmail:
                        lblErro.Text = "Erro ao enviar o email de recuperação de senha. Contate o administrador do sistema.";
                        break;
                    default:
                        break;
                }
            }
        }
        else
        {
            lblErro.Text = string.Empty;
        }
    }

    protected void btnLogin_Click(object sender, EventArgs e)
    {
        if (new Validação().Login(txtLogin.Text, txtSenha.Text))
        {
            Session["usuario"] = Permissao.Admin;
            Response.Redirect("inicio.aspx");
        }
        else
        {
            Response.Redirect("login.aspx?er=" + (int)Errors.Autenticacao);
        }
    }
    protected void lkbRecuperarSenha_Click(object sender, EventArgs e)
    {
        Usuario us = new UsuarioDal().SelecionarAdmin();

        if (EmailSender.EnviaEmailSenha(us.Email))
        {
            lblErro.ForeColor = Color.Black;
            lblErro.Text = "Um email contendo a nova senha foi enviada para " + OcultarEmail(us.Email);
        }
        else
        {
            Response.Redirect("login.aspx?er=" + (int)Errors.EnvioDeEmail);
        }
    }

    private string OcultarEmail(string email)
    {
        if (email.Length > 12)
        {
            string remover = email.Substring(4, email.Length - 8);
            return email.Replace(remover, "**********");
        }
        else
            return email;
    }
}